#pragma once
#include "RenderDrawList.h"
#include "MeshDrawingPolicy.h"
#include "DepthRendering.h"
#include "BasePassRendering.h"

class RenderQueueGroup
{
public:
	RenderQueueGroup() {}

	inline const RenderDrawList<DepthDrawingPolicy>& getDepthDrawList() const { return mDepthDrawList; }
	inline const RenderDrawList<BasePassDrawingPolicy>& getBassPassDrawList() const { return mBasePassDrawList; }

	void Clear();
	void AddRenderable(Renderable* renderable);

	RenderDrawList<DepthDrawingPolicy>& getDepthDrawList() { return mDepthDrawList; }
	RenderDrawList<BasePassDrawingPolicy>& getBasePassDrawList() { return mBasePassDrawList; }

private:
	RenderDrawList<DepthDrawingPolicy> mDepthDrawList;
	RenderDrawList<BasePassDrawingPolicy> mBasePassDrawList;
};
